package com.gwnet.shop.service.impl;

import com.gwnet.common.core.utils.DateUtils;
import com.gwnet.common.core.utils.StringUtils;
import com.gwnet.shop.domain.SpecGroup;
import com.gwnet.shop.mapper.SpecGroupMapper;
import com.gwnet.shop.service.ISpecGroupService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

/**
 * 商品规格组合价格Service业务层处理
 * @author 张万鹏
 * @date 2024-07-21
 */
@Service
public class SpecGroupServiceImpl implements ISpecGroupService
{
    @Resource
    private SpecGroupMapper specGroupMapper;

    /**
     * 查询商品规格组合价格
     * @param id 商品规格组合价格主键
     * @return 商品规格组合价格
     */
    @Override
    public SpecGroup selectSpecGroupById(Long id)
    {
        return specGroupMapper.selectSpecGroupById(id);
    }

    /**
     * 查询商品规格组合价格列表
     * @param specGroup 商品规格组合价格
     * @return 商品规格组合价格
     */
    @Override
    public List<SpecGroup> selectSpecGroupList(SpecGroup specGroup)
    {
        return specGroupMapper.selectSpecGroupList(specGroup);
    }

    /**
     * 新增商品规格组合价格 单个
     * @param specGroup 商品规格组合价格
     * @return 结果
     */
    @Override
    public int insertSpecGroup(SpecGroup specGroup) {
        String idStr = specGroup.getSpecIds();
        if(StringUtils.isEmpty(idStr)){
            throw new RuntimeException("规格不能为空!");
        }
        String[] ids = idStr.split(",");
        if(ids.length > 2){
            throw new RuntimeException("最多只能选择两种规格!");
        }
        /*if(ids.length == 2){
            int qian = Integer.parseInt(ids[0]);
            int hou = Integer.parseInt(ids[1]);
        }*/
        specGroup.setCreateTime(DateUtils.getNowDate());
        return specGroupMapper.insertSpecGroup(specGroup);
    }

    /**
     * 新增商品规格组合价格
     *
     * @param list 商品规格组合价格
     * @return 结果
     */
    @Override
    public int insertSpecGroup(List<SpecGroup> list)
    {
        int count = 0;
        for(SpecGroup specGroup:list){
            this.insertSpecGroup(specGroup);
            count++;
        }
        return count;
    }

    /**
     * 修改商品规格组合价格
     * 
     * @param specGroup 商品规格组合价格
     * @return 结果
     */
    @Override
    public int updateSpecGroup(SpecGroup specGroup)
    {
        specGroup.setUpdateTime(DateUtils.getNowDate());
        return specGroupMapper.updateSpecGroup(specGroup);
    }

    /**
     * 批量删除商品规格组合价格
     * 
     * @param ids 需要删除的商品规格组合价格主键
     * @return 结果
     */
    @Override
    public int deleteSpecGroupByIds(Long[] ids)
    {
        return specGroupMapper.deleteSpecGroupByIds(ids);
    }

    /**
     * 删除商品规格组合价格信息
     * 
     * @param id 商品规格组合价格主键
     * @return 结果
     */
    @Override
    public int deleteSpecGroupById(Long id)
    {
        return specGroupMapper.deleteSpecGroupById(id);
    }
}
